package com.ruoyi.system.service.impl;

import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.mapper.WzwMapper;
import com.ruoyi.system.pojo.CjCjmx;
import com.ruoyi.system.pojo.CjCjrw;
import com.ruoyi.system.service.WzwService;
import com.ruoyi.system.utils.HtmlParseUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

@Service
public class wzwServiceImpl implements WzwService {
    @Autowired
    private WzwMapper wzwMapper;
    @Autowired
    private HtmlParseUtil htmlParseUtil;

    //任务列表(首页页面）
    @Override
    public List<CjCjrw> getTaskList() {

        return wzwMapper.getTaskList();
    }

    //新建任务保存
    @Override
    public void addTask(CjCjrw cjCjrw) {
        cjCjrw.setZxzt(0);
        wzwMapper.save(cjCjrw);

    }

    //查询id
    @Override
    public CjCjrw findTitleById(long id) {
        return wzwMapper.findById(id);
    }

    //编辑保存
    @Override
    public void update(CjCjrw cjCjrw) {
        wzwMapper.update(cjCjrw);

    }

    //任务详情
    @Override
    public List<CjCjmx> findById(Long id) {
        return wzwMapper.indexDetail(id);
    }


    //新增任务后抓取
    @Override
    public void addGrabTask(CjCjrw cjCjrw) throws Exception {
        cjCjrw.setZxzt(1);
        Date kskj = new Date();
        SimpleDateFormat dateFormatBefore = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateBefore = dateFormatBefore.format(kskj);
        cjCjrw.setKssj(dateBefore);
        wzwMapper.save(cjCjrw);

        new Thread(() -> {
            try {
                List<CjCjmx> list = htmlParseUtil.paseShanDong(cjCjrw.getRwmc(), cjCjrw.getId());
//                list.stream().peek(cjCjmx -> cjCjmx.setRwid(cjCjmx.getId()));
                if (!list.isEmpty()) {
                    wzwMapper.insertData(list);
                }
                cjCjrw.setZxzt(2);
                Date jssj = new Date();
                SimpleDateFormat dateFormatAfter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String dateAfter = dateFormatAfter.format(jssj);
                cjCjrw.setJsssj(dateAfter);
                wzwMapper.update(cjCjrw);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }).start();
//
    }

    @Override
    public void updateGrabTask(CjCjrw cjCjrw) throws Exception {
        cjCjrw.setZxzt(1);
        Date newDate = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = dateFormat.format(newDate);
        cjCjrw.setKssj(date);
        wzwMapper.update(cjCjrw);

        new Thread(() -> {
            try {
                List<CjCjmx> list = htmlParseUtil.paseShanDong(cjCjrw.getRwmc(), cjCjrw.getId());
//                list.stream().peek(cjCjmx -> cjCjmx.setRwid(cjCjmx.getId()));
                if (!list.isEmpty()) {
                    wzwMapper.insertData(list);
                }
                cjCjrw.setZxzt(2);
                Date jssj = new Date();
                SimpleDateFormat dateFormatAfter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String dateAfter = dateFormatAfter.format(jssj);
                cjCjrw.setJsssj(dateAfter);
                wzwMapper.update(cjCjrw);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }).start();
//
    }
}
